/**
 * 
 */
/**
 * 
 */
/**
 * 
 */
function Teacher(id, name) {
	this.id = id;
	this.name = name;
}

var $table1 = $('#tch-table');

$(window).resize(function () {
    //防止表头与表格不对齐
    $table1.bootstrapTable('resetView');
});

$(function () {
    //使用严格模式
    "use strict";
    //表格初始化
    tableInitT();
    $table1.bootstrapTable('hideLoading');//隐藏加载
})

function tableInitT(){
	/**
     * 初始化Table
     */
    //先销毁表格
	$table1.bootstrapTable('destroy');
	$table1.bootstrapTable({

		
		// showFooter:true,
		method : 'post', // 向服务器请求方式
	//	data : rows,
		url:"../HDBServlet?op=2",
		cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
		 contentType : 'application/x-www-form-urlencoded',			
		striped : true, // 隔行变色
		dataType : "json", // 数据类型
		dataField:"data",//这是返回的json数组的key.默认好像是"rows".这里只有前后端约定好就行
		pagination : true, // 是否启用分页
		showPaginationSwitch : false, // 是否显示 数据条数选择框
		pageSize : 10, // 每页的记录行数（*）
		pageNumber : 1, // table初始化时显示的页数
		sortable:true,//是否启动排序
		//showColumns:true,
		sortOrder: "asc", //排序方式
		uniqueId: "id", //设置为ID比较可靠，别的名字容易出问题
		idField: "id", //可以通过种方式设置主键
		// showToggle: true,
		// clickToSelect: true,
		showRefresh : true, // 显示刷新按钮
		pageList : [ 10, 25, 40, 50 ], // 可供选择的每页的行数（*）
		search : false, // 不显示 搜索框
		sidePagination : 'client', // 客户端分页
		silent : true, // 必须设置刷新事件
		toolbarAlign : 'right', // 工具栏对齐方式
		responseHandler : responseHandler,
		columns : [ {
			field : null,
			align : 'center',
			valign : 'center',
			checkbox:true,
			formatter : function(value, row, index) {
				//	return '<div class="checker"><span><input type="checkbox" name="sub" /></span></div>';
			}
		}, {
			field : 'id',
			align : 'center',
			valign : 'center',
			sortable : true
		}, {
			field : 'name',
			align : 'center',
			sortable : true,
		},{
			field : 'op',
			align : 'center',
			valign : 'center',
			events: window.operateEvents,		    
			formatter : function(value, row, index) {
				// console.log(JSON.stringify(row)); data-toggle='modal' data-target='#modifyModal'
				var html = [
					"<button type='button' style='margin-right: 5px;' class='op up btn btn-info btn-xs btnCheckTch' data-toggle='modal' data-target='#checktchModal' ><i class='fa fa-arrow-up'></i> 查看</button>",
					"<button type='button' style='margin-right: 5px;' class='op down btn btn-primary btn-xs btnEditTch' data-toggle='modal' data-target='#modifytchModal'><i class='fa fa-pencil'></i> 编辑</button>",
					"<button type='button' class='op delete btn btn-danger btn-xs btnDelTch'><i class='fa fa-trash-o'></i> 删除</button>"
				];
					return html.join('');
			}
		}],
		onLoadSuccess: function (res) {//可不写
	        //加载成功时
	   //   console.log(res);
	    }, onLoadError: function (statusCode) {
	        return "加载失败了"
	    }, formatLoadingMessage: function () {
	        //正在加载
	        return "拼命加载中...";
	    }, formatNoMatches: function () {
	        //没有匹配的结果
	        return '无符合条件的记录';
	    }
	});
	
}


//请求成功方法
function responseHandler(res){	
	//console.log(res);
	    return {
	         data:res
	   };
};



//操作事件建议卸载内部,防止第一次点击操作不生效
window.operateEvents = {
    /**
     * 注册操作按钮事件
     */
		'click .btnCheck': function (e, value, row, index) {
		        checkData(row);
		},	
	    'click .btnEdit': function (e, value, row, index) {
	        editData(row);
	    },
	    'click .btnDel': function (e, value, row, index) {
	      delData([row.id,row.name]);//传递数组
	    },	
		
	'click .btnCheckTch': function (e, value, row, index) {
	        checkDatatch(row);
	},	
    'click .btnEditTch': function (e, value, row, index) {
        editDatatch(row);
    },
    'click .btnDelTch': function (e, value, row, index) {
      delDatatch([row.id,row.name]);//传递数组
    }
};

//行数据转化demo
function genderDel(value, row, index) {
    /**
     * 替换delete数据为文字
     * @param {string} value 选值
     * @param {object} row 行数据
     * @param {number} index 行索引
     * @return {string} 返回状态或"-"
     */
    if (value == null || value == undefined) {
        return "-";
    } else if (value == 1) {
        return "已删除";
    } else if (value == 0) {
        return "正常";
    }
}

function checkDatatch(row) {//row为表格内一行的数据传值
//	    console.log("查看页面");
	    console.log(row);
	var $arr = $('#checktchModal').find('h3');
	$arr.eq(0).html(
			'<span class="label label-success">工号</span>: '
					+ row.id);
	$arr.eq(1).html(
			'<span class="label label-success">姓名</span>: '
					+ row.name);
	
	}
function editDatatch(row) {//row为表格内一行的数据传值
	//    console.log("修改页面");
	    $('#tch-id').val(row.id);
	    
	}
	 
function delDatatch(strData) {
	console.log(strData);
		if(confirm('确定要删除？')){      
	        var count = $table1.bootstrapTable('getData').length;
	        strData.forEach(v=>{
	        	$table1.bootstrapTable('remove', {
		            field: 'id',
		            values: [v]
		        });
	        });
	        
	        var sendData = [3].concat(strData);
	        $.ajax({
	            url: '../HDBManageServlet?op=2',
	            method: 'POST',
	            contentType: "application/x-www-form-urlencoded",
	            data: {sendData:sendData},
	            dataType:"json",
	            //阻止深度序列化，向后台传送数组
	            traditional: true,
	          //  async : false,//这里同步，请按实际需求设置
	            //成功
	            success: function (msg) {
	                alert("删除成功");
	            },
	            //请求错误
	            error: function (err) {
	                console.log(err);
	            }
	        });
	        
	       
		}else{
            console.log("Cancel");
            return false;
		}
	}

$("#add-row-tch").on("click", function () {

 //   console.log("新增页面");
    if ($("#add-row-form-tch").isValid()) {

        var count = $table1.bootstrapTable('getData').length;
        //console.log(count);
        // newFlag == 1的数据为新规的数据
        
		name = $('#name-tch-input').val();
        
		
		var sendData = [1,"",name];
		$.ajax({
            url: '../HDBManageServlet?op=2',
            method: 'POST',
            contentType: "application/x-www-form-urlencoded",
            data: {sendData:sendData},
            dataType:"json",
            //阻止深度序列化，向后台传送数组
            traditional: true,
        //    async : false,//这里同步，请按实际需求设置
            //成功
            success: function (msg) {
            	console.log(msg);
                if(msg[0].hasOwnProperty('error')){
                	alert('添加失败!');
                }else{
                	var id = msg[0].id;
                	$table1.bootstrapTable('insertRow',{index:count,row:new Teacher(id,name) });
                    $('#addtchModal').modal('hide');  
                }
            },
            //请求错误
            error: function (err) {
                console.log(err);
            }
        });
		
		return false;
    }
});

$("#modify-row-tch").on("click", function () {
	//console.log("修改页面");
    if ($("#modify-row-tch-form").isValid()) {
    	
        var  t_id = $('#tch-id').val(),
        t_name = $('#tch-name').val();
        
        var sendData = [2,t_id,t_name];
		console.log(sendData);
        $.ajax({
            url: '../HDBManageServlet?op=2',
            method: 'POST',
            contentType: "application/x-www-form-urlencoded",
            data: {sendData:sendData},
            dataType:"json",
            //阻止深度序列化，向后台传送数组
            traditional: true,
        //    async : false,//这里同步，请按实际需求设置
            //成功
            success: function (msg) {
            	console.log(msg[0]);
                if(msg[0].hasOwnProperty('error')){
                	alert('编辑失败!');
                }else{
                	tch = new Teacher(t_id,t_name);
                	  $table1.bootstrapTable('updateByUniqueId',{id:t_id,row:tch });
                	  alert("编辑成功！");
                      $('#modifytchModal').modal('hide');
                }
            },
            //请求错误
            error: function (err) {
                console.log(err);
            }
        });
     	return false;
    }
});